<?php

declare(strict_types=1);

namespace app\model\esxsys;

use app\model\esxdm\auth\EsxdmAuthAdminModel;
use think\facade\Db;
use think\Model;

/**
 * 系统版本 模型类
 */
class VersionsModel extends Model
{
    // 设置当前模型对应的完整数据表名称
    protected $table = 'esxsys_versions';

    // 自动时间戳
    protected $autoWriteTimestamp = 'int';

    // 定义时间戳字段名
    protected $createTime = 'created_at';
    protected $updateTime = 'updated_at';

    /**
     * 渠道 字段内容
     */
    protected $channel_data = ['all' => '全部', 'uc' => 'uc', 'alun' => 'alun', 'wap' => 'wap'];

    /**
     * 返回 渠道 字段内容
     */
    public function getChannelData()
    {
        $data = EsxdmAuthAdminModel::where('group_name', 'channel')->column('contact_name','contact_name');
        $data=array_merge(['all'=>'全部'],$data);
        return $data;
    }

    /**
     * 返回 渠道 字段获取器的值
     */
    public function getChannelTextAttr($value)
    {
        $value = $this->getData('channel');
        if (is_numeric($value)) {
            $value = intval($value);
        }
        $data=$this->getChannelData();
        return isset($data[$value]) ? $data[$value] : $value;
    }

    /**
     * 系统类型 字段内容
     */
    protected $os_type_data = ['android' => '安卓', 'ios' => '苹果'];

    /**
     * 返回 系统类型 字段内容
     */
    public function getOsTypeData()
    {
        return $this->os_type_data;
    }

    /**
     * 返回 系统类型 字段获取器的值
     */
    public function getOsTypeTextAttr($value)
    {
        $value = $this->getData('os_type');
        if (is_numeric($value)) {
            $value = intval($value);
        }
        return isset($this->os_type_data[$value]) ? $this->os_type_data[$value] : $value;
    }

    /**
     * 是否强制更新 字段内容
     */
    protected $is_force_data = [0 => '否', 1 => '是'];

    /**
     * 返回 是否强制更新 字段内容
     */
    public function getIsForceData()
    {
        return $this->is_force_data;
    }

    /**
     * 返回 是否强制更新 字段获取器的值
     */
    public function getIsForceTextAttr($value)
    {
        $value = intval($this->getData('is_force'));
        return isset($this->is_force_data[$value]) ? $this->is_force_data[$value] : $value;
    }

    /**
     * 状态 字段内容
     */
    protected $status_data = [0 => '禁用', 1 => '启用'];

    /**
     * 返回 状态 字段内容
     */
    public function getStatusData()
    {
        return $this->status_data;
    }

    /**
     * 返回 状态 字段获取器的值
     */
    public function getStatusTextAttr($value)
    {
        $value = intval($this->getData('status'));
        return isset($this->status_data[$value]) ? $this->status_data[$value] : $value;
    }

    public static function copy($id)
    {
        Db::execute('insert into esxsys_version (`version_name`,`version`, `channel`,`os_type`,`download_url`,`bytes`,`content`,`created_at`) select `version_name`,`version`,`channel`,`os_type`,`download_url`,`bytes`,`content`,unix_timestamp() from esxsys_version where id=:id;', ['id' => $id]);
    }
}
